今天來寫一下 API 小知識以及開始實作 API 的前置作業。
API (Application Programming Interface,應用程式介面),以web而言,簡單來說就是後端與前端溝通的橋樑,而這裡指的前端,不單只是 Web,也包含了 Mobile APP 和其他服務。而 API 扮演了特定功能的窗口,使前端能藉此訪問後端,執行特定功能。
動詞 | 描述 |
---|---|
GET | 獲取資源,單個或多個 |
POST | 創建資源 |
PUT | 更新資源 |
DELETE | 刪除資源 |
---------- 下面就開始小專案囉 : ) ----------
這邊就以一個簡單的書店書籍 API 來當小範例~~~
$ php artisan make:model Models/Book -mf
參數 m 為 migration, 參數 f 為 factory。
生成檔案後結果大概是這樣:
Tips: 建立 Model 時我習慣多放一層資料夾,比較好管理。
接著打開 Migration file,定義資料表
Run
$ php artisan migrate
OK~ 資料表建立完成。
還記得剛剛建立的 Factory 嗎,這邊來用一個小技巧快速生成我們 API 要用的資料吧
Step1. 撰寫 Factory
BookFactory.php
回傳的陣列填入對應資料表的假資料
<?php
use Faker\Generator as Faker;
$factory->define(App\Models\Book::class, function (Faker $faker) {
return [
'name' => $faker->text(25),
'author' => $faker->name,
'price' => $faker->numberBetween(300, 2500),
'publication_date' => $faker->dateTimeBetween('-10 year', '+9 month'),
];
});
Step2. 產生 Database Seeder
Laravel 可以用 seed 類輕鬆地為數據庫填充測試數據。Let's go.
Run
$ php artisan make:seeder BookTableSeeder
BookTableSeeder.php
呼叫 factory 方法
<?php
use Illuminate\Database\Seeder;
class BookTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(App\Models\Book::class, 10)->create();
}
}
然後在 seeds 資料夾下的 DatabaseSeeder.php 內使用 call 方法來運行 BookTableSeeder 類。
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->call(BookTableSeeder::class);
}
}
最後 Run
$ php artisan db:seed
結果如下:
燈燈,書店開張插三支香!!!十本書順利新增了,想要幾本都沒問題哦!明天我們就來利用這些資料建建 API 吧。
今天先到這~~謝謝大家!有問題可以問歐XD